package top.jnaw.jee.utils;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class upload {

  public static String saveUrlAs(String url, String filePath, String filename,
      String method) {
    System.out.println("fileName---->" + filename);
    System.out.println("filePath---->" + filePath);
    //创建不同的文件夹目录
    File file = new File(filePath);
    //判断文件夹是否存在
    if (!file.exists()) {
      //如果文件夹不存在，则创建新的的文件夹
      file.mkdirs();
    }
    FileOutputStream fileOut = null;
    HttpURLConnection conn = null;
    InputStream inputStream = null;
    try {
      // 建立链接
      URL httpUrl = new URL(url);
      conn = (HttpURLConnection) httpUrl.openConnection();
      //以Post方式提交表单，默认get方式
      conn.setRequestMethod(method);
      conn.setDoInput(true);
      conn.setDoOutput(true);
      // post方式不能使用缓存
      conn.setUseCaches(false);
      //连接指定的资源
      conn.connect();
      //获取网络输入流
      inputStream = conn.getInputStream();
      BufferedInputStream bis = new BufferedInputStream(inputStream);
      //判断文件的保存路径后面是否以/结尾
      if (!filePath.endsWith("/")) {

        filePath += "/";

      }
      //写入到文件（注意文件保存路径的后面一定要加上文件的名称）
      fileOut = new FileOutputStream(filePath + filename);
      BufferedOutputStream bos = new BufferedOutputStream(fileOut);

      byte[] buf = new byte[4096];
      int length = bis.read(buf);
      //保存文件
      while (length != -1) {
        bos.write(buf, 0, length);
        length = bis.read(buf);
      }
      bos.close();
      bis.close();
      conn.disconnect();
    } catch (Exception e) {
      e.printStackTrace();
      System.out.println("抛出异常！！");
    }

    return file + filename;

  }

  // 删除指定文件夹下所有文件
// param path 文件夹完整绝对路径
  public static boolean delAllFile(String path) {
    boolean flag = false;
    File file = new File(path);
    if (!file.exists()) {
      return flag;
    }
    if (!file.isDirectory()) {
      return flag;
    }
    String[] tempList = file.list();
    File temp = null;
    for (int i = 0; i < tempList.length; i++) {
      if (path.endsWith(File.separator)) {
        temp = new File(path + tempList[i]);
      } else {
        temp = new File(path + File.separator + tempList[i]);
      }
      if (temp.isFile()) {
        temp.delete();
      }
      if (temp.isDirectory()) {
        delAllFile(path + "/" + tempList[i]);// 先删除文件夹里面的文件
        delFolder(path + "/" + tempList[i]);// 再删除空文件夹
        flag = true;
      }
    }
    return flag;
  }
  // 删除文件夹
// param folderPath 文件夹完整绝对路径

  public static void delFolder(String folderPath) {
    try {
      delAllFile(folderPath); // 删除完里面所有内容
      String filePath = folderPath;
      filePath = filePath;
      java.io.File myFilePath = new java.io.File(filePath);
      myFilePath.delete(); // 删除空文件夹
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
